package com.hhkj.study.api.user.sevice.biz;

import com.hhkj.study.api.user.model.req.*;
import com.hhkj.study.api.user.model.res.*;

import java.util.List;

/**
 * @Author luowu
 * @Date 2024/10/10 涵 16:50:57
 */
public interface ApiCustomerUserLessonBizService {

    /**
     * 我的课程
     * @param req
     * @return
     */
    List<ApiCustomerUserCourseListRes> courseList(ApiCustomerUserCourseListReq req);

    /**
     * 课程详情
     * @param req
     * @return
     */
    ApiCustomerUserCourseRes courseDetail(ApiCustomerUserCourseBaseReq req);

    /**
     * 用户购买的课程中直播的时间段
     * @param req
     * @return
     */
    List<ApiCourseResourceLiveRes> liveDayList(ApiUserLiveLessonDayReq req);

    /**
     * 课程表
     * @param req
     * @return
     */
    List<ApiCustomerUserCourseStructureRes> timeTable(ApiCustomerUserCourseGetReq req);

    /**
     * 视频进度保存
     * @param req
     * @return
     */
    boolean videoProgressSave(ApiCustomerUserListenSaveReq req);

    /**
     * 用户学习报告
     * @param req
     * @return
     */
    ApiCustomerUserStudyReportRes studyReport(ApiCustomerUserCourseBaseReq req);

    /**
     * 单个视频进度
     * @param req
     * @return 返回最近一次视频收看进度
     */
    Long videoHistory(ApiCustomerUserVideoHistoryReq req);

    /**
     * 用户已有的课程类型
     * @return
     */
    List<ApiCustomerUserLessonTypeRes> lessonType();

    /**
     * 用户最近观看的记录
     * @return
     */
    ApiCustomerUserListenRecentRes recent();

    /**
     * 课程表结构
     * @param req
     * @return
     */
    List<ApiCustomerUserCourseStructureRes> structure(ApiCustomerUserCourseGetReq req);

    /**
     * 具体节点详情
     * @param req
     * @return
     */
    ApiCustomerUserCourseStructureRes structureDetail(ApiCustomerUserCourseGetReq req);
}
